Computer-aided design or CAD systems are often employed in integrated circuit design and synthesis by taking a hardware design created from a high-level programming language to a hardware design implementation. See, for example, U.S. Pat. No. 6,848,085 issued to Panchul et al., entitled “System for Converting Hardware Designs in High-Level Programming Language to Hardware Implementations,” (hereinafter “U.S. Pat. No. 6,848,085”). For instance, the techniques provided in U.S. Pat. No. 6,848,085 can take as input a C-type program representation of the hardware design, compile it into a register transfer level (RTL) hardware description language (HDL), and use that to synthesize a gate-level hardware representation.
With this process the high-level programming language, such as ANSI C, is a pure software language without any hardware concept. Hardware, however, requires I/O ports, finite state machine or FSM, storage elements, etc. in addition to the algorithm described in Boolean logic. The techniques described in U.S. Pat. No. 6,848,085 only govern the Boolean logic and create the FSM, I/O ports and storage elements in an unrestricted way. Thus, any specific definition of these hardware components cannot be accommodated.
Therefore, improved techniques are needed for modeling and architecture synthesis of complex circuits, such as microprocessors.